A mesh network typically includes a plurality of nodes that communicate with each other for data propagation. A mesh network can propagate messages by using either a flooding approach or a routing approach. In the routing propagation approach, a message (e.g., a packet) traverses along a specific path by hopping from a relay node to another until it reaches the destination node. In the flooding propagation approach, instead of a specific route, the message is sent to all the linked nodes in the mesh network, including the unintended nodes.
Generally speaking, flooding propagation is less efficient in terms of power and bandwidth usage than routing propagation, mainly because multiple nodes within a reception range retransmit the message approximately at the same time. The resultant collisions inevitably increase energy consumption and network overhead to unreasonable levels. Also, because relay nodes incur a lot of unnecessary packet transmission in flooding propagation, a flooding-based mesh network is usually difficult to scale up. Compared to flooding propagation, routing propagation is advantageous due to lower overhead traffic and better scalability.
On the other hand, flooding propagation offers greater simplicity in terms of implementation of communication logic in the network nodes since no sophisticated routing techniques are involved. Moreover, in flooding, signals usually arrive at a node through several propagation paths, and therefore one or several blocked paths are usually of no consequence, which ensures high reachability and reliability.
Some network devices acting as a relay node in a mesh network may only have the capability to forward packets by flood-relaying (which may be referred to as a “normal relay node” herein), where each packet received by such a node is sent to all coupled links except the one that the packet arrived on. In contrast, some other network devices acting as a relay node have enhanced configurations enabling it to forward packets by routing-relaying (which may be referred to as a “high end relay node” herein), in which a packet is transmitted to a next node along a specific or prescribed route. Typically, such a high end relay node can also perform flood-relaying.
Normal relay nodes are easy to implement due to the low computation and memory requirements of flood-relaying. High end relay nodes feature increased development and manufacturing costs due to increased memory capacity, computing power, and design complexity. For example, a high end node may integrate logic for network management, self-discovery, self-repair, routing tables and/or routing information management and communication, which are not included in the normal relay nodes with no routing-relaying capability.
FIG. 1 illustrates a mesh network system 100 in which packet propagation is exclusively based on flooding in accordance with the prior art. As illustrated in a simplified form, the network 100 is composed of edge nodes A, K, L, H and J and normal relay nodes B, C, E, D and G. Each edge node is capable of originating packets but typically not capable of forwarding packets; and each normal relay node is capable of forwarding packets to other nodes by flood-relaying.
For instance, edge node A generates a packet and specifies edge node J as the destination node. The flooding-based propagation of the packet is depicted by the arrows. More specifically, edge node A transmits the packet to each of the relay nodes B, C, D and E that are directly linked to A, and each of B, C, D and E forwards the packet to all of its directly-linked nodes except A, and so on. Particularly, B transmits the packet to K and L; C transmits the packets to L, E, and D; and E transmits the packet to C, D and H. Eventually, the packet is delivered to the destination node J through G. As demonstrated, although K, L and H, as well as several relay nodes linked to them, are unintended recipients, the packet is still delivered to them, resulting in significant bandwidth and power inefficiency.
FIG. 2 illustrates a mesh network system 200 allowing both flooding-based and routing-based packet propagation in accordance with the prior art. As illustrated, the network 200 is composed of edge nodes A, K, L, H and J, normal relay nodes B and E, and high end relay nodes C, D and G.
When edge node A generates a packet directed to the destination node J, it is specified in the packet header whether the packet is to be propagated to J by flooding or by routing, for example by using a routing protocol (RP) flag. If the RP flag indicates flooding propagation, all the relay nodes participate the propagation and forward the packet by flood-relaying, including the normal and the high end ones. On the other hand, if the RP flag indicates routing propagation, only the high end relay nodes participate the propagation and accordingly forward the packet by routing-relaying. A normal relay node receiving the packet may discard it due to lack of routing-relay capability.
Thus, according to the prior art, once the RP indication is set by the edge node, the corresponding propagation approach is used through the entire packet propagation process. High end relay nodes in the mesh network act as routing relays only if the edge node selects routing propagation for a packet. This limitation causes inefficient use of the enhanced capacities and benefits offered by high end relay nodes and routing propagation in the mesh network. In addition, this requires the edge node have routing capability which may not always be true in a real life.